//
//  JPApplyForDoctorVC.m
//  JPKY
//
//  Created by Vitas on 2016/11/13.
//  Copyright © 2016年 Vitas. All rights reserved.
//

#import "JPApplyForDoctorVC.h"
#import "JPApplyForDoctorCell.h"
#import "InterfaceTool.h"
#import <YYModel.h>
#import "JPApplyForDoctorModel.h"
#import <MJRefresh.h>
#import <SVProgressHUD.h>

static const CGFloat MJDuration = 1.0;

/**
 * 随机数据
 */
#define MJRandomData [NSString stringWithFormat:@"随机数据---%d", arc4random_uniform(1000000)]


static NSString *rid = @"JPCell";

@interface JPApplyForDoctorVC () <UITableViewDataSource>

/** 获取的数据 */
@property (strong, nonatomic) NSMutableArray *data;

/** 模型数组 */
@property (copy,nonatomic)NSArray <JPApplyForDoctorModel *> *doctors;

@end

@implementation JPApplyForDoctorVC

- (void)viewDidLoad {
    [super viewDidLoad];
    [self loadData];
    self.view.backgroundColor =  [UIColor whiteColor];
    
    [self.tableView registerClass:[JPApplyForDoctorCell class] forCellReuseIdentifier:rid];
    self.tableView.rowHeight = 120;
    
    [self example01];
    [self example11];
}



#pragma mark - UITableViewDataSource

// 返回行
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return self.doctors.count;
    
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    
    // 自定义Cell
    JPApplyForDoctorCell *cell = [tableView dequeueReusableCellWithIdentifier:rid forIndexPath:indexPath];
    
    cell.model = self.doctors[indexPath.row];
    
    return cell;
}

- (void)loadData {
    
    // 获取医生基本信息
    [[InterfaceTool sharedInterfaceTool] getDoctorListSuccess:^(id response) {
        if (response != nil) {
    
            NSDictionary *respnseDict = response;
            NSArray *dictArr = respnseDict[@"data"];
            self.doctors = [NSArray yy_modelArrayWithClass:[JPApplyForDoctorModel class] json:dictArr];
            [self.tableView reloadData];
        }
    } failure:^(NSError *error) {
        
        if (error != nil) {
            
            NSLog(@"error = %@",error);
        }
    }];
    
}

- (void)example01 {
    __weak __typeof(self) weakSelf = self;
    
    // 设置回调（一旦进入刷新状态就会调用这个refreshingBlock）
    self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
        [weakSelf loadNewData];
    }];
    
    // 马上进入刷新状态
    [self.tableView.mj_header beginRefreshing];
}

/**
 *  上拉刷新
 */
- (void)example11 {
    [self example01];
    
    __weak __typeof(self) weakSelf = self;
    
    // 设置回调（一旦进入刷新状态就会调用这个refreshingBlock）
    self.tableView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
        [weakSelf loadMoreData];
    }];
}


#pragma mark 下拉刷新数据
- (void)loadNewData {
    // 1.添加假数据
    for (int i = 0; i<5; i++) {
        [self.data insertObject:MJRandomData atIndex:0];
    }
    [SVProgressHUD setMinimumDismissTimeInterval:1.0];
    [SVProgressHUD showWithStatus:@"正在加载中···"];
    [SVProgressHUD setDefaultMaskType:SVProgressHUDMaskTypeBlack];
    // 2.模拟2秒后刷新表格UI（真实开发中，可以移除这段gcd代码）
    __weak UITableView *tableView = self.tableView;
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(MJDuration * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        // 刷新表格
        [tableView reloadData];
        // 提示
        [SVProgressHUD showSuccessWithStatus:@"加载完成"];
        // 拿到当前的下拉刷新控件，结束刷新状态
        [tableView.mj_header endRefreshing];
    });
}

#pragma mark 上拉加载更多数据
- (void)loadMoreData {
    for (int i = 0; i<5; i++) {
        [self.data addObject:MJRandomData];
    }
    [SVProgressHUD setMinimumDismissTimeInterval:1.0];
    [SVProgressHUD showWithStatus:@"正在加载中···"];
    [SVProgressHUD setDefaultMaskType:SVProgressHUDMaskTypeBlack];

    // 2.获取数据后刷新表格UI
    __weak UITableView *tableView = self.tableView;
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(MJDuration * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        // 刷新表格
        [tableView reloadData];
        // 弹窗提示刷新完成
        [SVProgressHUD showSuccessWithStatus:@"加载完成"];

        // 拿到当前的上拉刷新控件，结束刷新状态
        [tableView.mj_footer endRefreshing];
    });
}


@end
